home *** CD-ROM | disk | FTP | other *** search
- INTEGER FUNCTION SHIFT(VAL,DIST)
-
- C RETURN VAL LEFT-SHIFTED (LOGICALLY) DIST BITS (RIGHT SHIFT IF DIST <0).
-
- IMPLICIT INTEGER*4 (A-Z)
-
- SHIFT=VAL
- IF(DIST)10,20,30
- 10 IDIST=-DIST
- DO 11 I=1,IDIST
- J=0
- IF(SHIFT.LT.0) J=8#10000000000
- 11 SHIFT=((SHIFT.AND.8#17777777777)/2)+J
- 20 RETURN
- 30 SHIFT=ISHFT(VAL,DIST)
- RETURN
- END
-